The present invention relates to the management of information in a raster display, and more particularly, to the management of information in regions of a display called windows.
A raster display is represented as a rectangle of picture elements or pixels of some fixed size, for example, 1024 by 1024. Within this display area, it is desirable to manage a set of windows. A window is a pattern of text and/or graphics information clipped to a particular region of the display. A region is any arbitrary subset of display pixels. Windows are used extensively in data processing systems for presenting information to a user and for providing graphical user interfacing wherein commands and data can be input via graphical controls and data entry fields. These windows provide standardized rectangular display areas for information input and output. Not all windows, however, are rectangular. There are other window display configurations that provide non-standardized or customized windows, for graphics and other purposes, which may include a variety of shapes, sizes and information content.
It is conventional for display windows to have a stacking order wherein windows at the top obscure other windows below in the stacking order. Windows are thus arranged like sheets of paper on a desk top wherein only the topmost sheet is entirely visible and wherein some sheets may not be visible at all. Like sheets of paper, windows are periodically added, deleted or repositioned in the display. This requires a sequence of data processing steps which shall be referred to as a window operation. A window operation is performed when any of the following tasks is requested:
1. Create a new window on a region of the display. PA1 2. Destroy a window. PA1 3. Change the region on which a window is defined. PA1 4. Change the stacking order of windows.
The result of any one of these operations is a list of display updates representing a reorganization of display information. Each update writes a region of the display with the revealed portions of some window, or with the background.
A typical window operation is illustrated in FIGS. 1 and 2. Three circular windows A, B and C are stacked in that order. If window B is moved upwards, the region labelled 1 must be redrawn with the contents of window B and the region labelled 2 must be redrawn with the contents of window C. The standard approach used to handle this problem is to first compute a rectangle that encloses all of the area that is changed. For example, when deleting a window, the rectangle encloses the window. When moving a window, the rectangle encloses both the old and new window positions. Once defined, the rectangle is cleared to the background color. Next, all windows that intersect the rectangle are redrawn, The redraws must be clipped to the rectangle, so that only pixels within the rectangle are redrawn. The windows must be redrawn in reverse order, from bottommost to topmost. Windows that do not intersect the rectangle are not redrawn.
Although the foregoing procedure is used in many commercial drawing editors, it has several disadvantages. First, the method can be slow if many windows need to be redrawn. Second, the damaged area is redrawn many times, producing a flickering of the area that is annoying to users. Third, inefficiencies result when non-rectangular windows are displayed due to the unnecessary repainting of pixels outside the treated window(s) but inside the computed rectangle. Accordingly, there is an evident need for a window management method that allows many changes to be made to non-rectangular (and rectangular) windows between updates of the display, but wherein a minimum number of pixels are redrawn when an update is called for. In this manner, processing time could be decreased and display flicker could be avoided.